home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2000 #4 / Amiga Plus CD - 2000 - No. 4.iso / Tools / Dev / SpeakFreely_Src / gsm / src / toast_alaw.c < prev    next >
C/C++ Source or Header  |  2000-05-27  |  19KB  |  334 lines

  1. /*
  2.  * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
  3.  * Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
  4.  * details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
  5.  */
  6.  
  7. /* $Header: /home/kbs/jutta/src/gsm/gsm-1.0/src/RCS/toast_alaw.c,v 1.1 1992/10/28 00:15:50 jutta Exp $ */
  8.  
  9. #include    "toast.h"
  10.  
  11. /*  toast_alaw.c -- manipulate A-law encoded sound.
  12.  */
  13.  
  14. extern FILE    * in, * out;
  15.  
  16. #define    A2S(x)    (a2s[  (unsigned char )(x)       ])
  17. #define    S2A(x)    (s2a[ ((unsigned short)(x)) >> 4 ])
  18.  
  19. static unsigned short a2s[] = {
  20.  
  21.       5120,60160,  320,65200,20480,44032, 1280,64192,
  22.      2560,62848,   64,65456,10240,54784,  640,64864,
  23.      7168,58112,  448,65072,28672,35840, 1792,63680,
  24.      3584,61824,  192,65328,14336,50688,  896,64608,
  25.      4096,61184,  256,65264,16384,48128, 1024,64448,
  26.      2048,63360,    0,65520, 8192,56832,  512,64992,
  27.      6144,59136,  384,65136,24576,39936, 1536,63936,
  28.      3072,62336,  128,65392,12288,52736,  768,64736,
  29.      5632,59648,  352,65168,22528,41984, 1408,64064,
  30.      2816,62592,   96,65424,11264,53760,  704,64800,
  31.      7680,57600,  480,65040,30720,33792, 1920,63552,
  32.      3840,61568,  224,65296,15360,49664,  960,64544,
  33.      4608,60672,  288,65232,18432,46080, 1152,64320,
  34.      2304,63104,   32,65488, 9216,55808,  576,64928,
  35.      6656,58624,  416,65104,26624,37888, 1664,63808,
  36.      3328,62080,  160,65360,13312,51712,  832,64672,
  37.      5376,59904,  336,65184,21504,43008, 1344,64128,
  38.      2688,62720,   80,65440,10752,54272,  672,64832,
  39.      7424,57856,  464,65056,29696,34816, 1856,63616,
  40.      3712,61696,  208,65312,14848,50176,  928,64576,
  41.      4352,60928,  272,65248,17408,47104, 1088,64384,
  42.      2176,63232,   16,65504, 8704,56320,  544,64960,
  43.      6400,58880,  400,65120,25600,38912, 1600,63872,
  44.      3200,62208,  144,65376,12800,52224,  800,64704,
  45.      5888,59392,  368,65152,23552,40960, 1472,64000,
  46.      2944,62464,  112,65408,11776,53248,  736,64768,
  47.      7936,57344,  496,65024,31744,32768, 1984,63488,
  48.      3968,61440,  240,65280,15872,49152,  992,64512,
  49.      4864,60416,  304,65216,19456,45056, 1216,64256,
  50.      2432,62976,   48,65472, 9728,55296,  608,64896,
  51.      6912,58368,  432,65088,27648,36864, 1728,63744,
  52.      3456,61952,  176,65344,13824,51200,  864,64640
  53. };
  54.  
  55.  
  56. static unsigned char  s2a[] = {
  57.  
  58.     170, 42,234,106,138, 10,202, 74,186, 58,250,122,154, 26,218, 90,
  59.     162, 34,226, 98,130,  2,194, 66,178, 50,242,114,146, 18,210, 82,
  60.     174, 46, 46,238,238,110,110,142,142, 14, 14,206,206, 78, 78,190,
  61.     190, 62, 62,254,254,126,126,158,158, 30, 30,222,222, 94, 94,166,
  62.     166, 38, 38, 38, 38,230,230,230,230,102,102,102,102,134,134,134,
  63.     134,  6,  6,  6,  6,198,198,198,198, 70, 70, 70, 70,182,182,182,
  64.     182, 54, 54, 54, 54,246,246,246,246,118,118,118,118,150,150,150,
  65.     150, 22, 22, 22, 22,214,214,214,214, 86, 86, 86, 86,168,168,168,
  66.     168, 40, 40, 40, 40, 40, 40, 40, 40,232,232,232,232,232,232,232,
  67.     232,104,104,104,104,104,104,104,104,136,136,136,136,136,136,136,
  68.     136,  8,  8,  8,  8,  8,  8,  8,  8,200,200,200,200,200,200,200,
  69.     200, 72, 72, 72, 72, 72, 72, 72, 72,184,184,184,184,184,184,184,
  70.     184, 56, 56, 56, 56, 56, 56, 56, 56,248,248,248,248,248,248,248,
  71.     248,120,120,120,120,120,120,120,120,152,152,152,152,152,152,152,
  72.     152, 24, 24, 24, 24, 24, 24, 24, 24,216,216,216,216,216,216,216,
  73.     216, 88, 88, 88, 88, 88, 88, 88, 88,160,160,160,160,160,160,160,
  74.     160, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
  75.      32,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,
  76.     224, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
  77.      96,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,
  78.     128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  79.       0,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,
  80.     192, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
  81.      64,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,
  82.     176, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
  83.      48,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
  84.     240,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,
  85.     112,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,
  86.     144, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
  87.      16,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,
  88.     208, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
  89.      80,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,
  90.     172, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
  91.      44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
  92.      44,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,
  93.     236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,
  94.     236,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,
  95.     108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,
  96.     108,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,
  97.     140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,
  98.     140, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
  99.      12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
  100.      12,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,
  101.     204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,
  102.     204, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
  103.      76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
  104.      76,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,
  105.     188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,
  106.     188, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
  107.      60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
  108.      60,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,
  109.     252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,
  110.     252,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,
  111.     124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,
  112.     124,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,
  113.     156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,
  114.     156, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
  115.      28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
  116.      28,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,
  117.     220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,
  118.     220, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
  119.      92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
  120.      92,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,
  121.     164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,
  122.     164, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
  123.      36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
  124.      36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
  125.      36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
  126.      36,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,
  127.     228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,
  128.     228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,
  129.     228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,
  130.     228,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
  131.     100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
  132.     100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
  133.     100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
  134.     100,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,
  135.     132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,
  136.     132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,
  137.     132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,
  138.     132,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
  139.       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
  140.       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
  141.       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
  142.       4,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,
  143.     196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,
  144.     196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,
  145.     196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,
  146.     196, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
  147.      68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
  148.      68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
  149.      68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
  150.      68,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,
  151.     180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,
  152.     180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,
  153.     180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,
  154.     180, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
  155.      52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
  156.      52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
  157.      52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
  158.      52,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,
  159.     244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,
  160.     244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,
  161.     244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,
  162.     244,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,
  163.     116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,
  164.     116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,
  165.     116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,
  166.     116,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,
  167.     148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,
  168.     148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,
  169.     148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,
  170.     148, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
  171.      20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
  172.      20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
  173.      20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
  174.      20,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,
  175.     212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,
  176.     212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,
  177.     212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,
  178.     212, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
  179.      84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
  180.      84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
  181.      84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
  182.      84, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
  183.      85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
  184.      85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
  185.      85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
  186.      85,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,
  187.     213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,
  188.     213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,
  189.     213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,
  190.     213, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
  191.      21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
  192.      21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
  193.      21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
  194.      21,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,
  195.     149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,
  196.     149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,
  197.     149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,
  198.     149,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,
  199.     117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,
  200.     117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,
  201.     117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,
  202.     117,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,
  203.     245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,
  204.     245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,
  205.     245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,
  206.     245, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
  207.      53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
  208.      53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
  209.      53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
  210.      53,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,
  211.     181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,
  212.     181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,
  213.     181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,
  214.     181, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
  215.      69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
  216.      69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
  217.      69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
  218.      69,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,
  219.     197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,
  220.     197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,
  221.     197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,
  222.     197,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,
  223.       5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,
  224.       5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,
  225.       5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,
  226.       5,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,
  227.     133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,
  228.     133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,
  229.     133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,
  230.     133,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,
  231.     101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,
  232.     101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,
  233.     101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,
  234.     101,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,
  235.     229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,
  236.     229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,
  237.     229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,
  238.     229, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
  239.      37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
  240.      37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
  241.      37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
  242.      37,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,
  243.     165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,
  244.     165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,
  245.     165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,
  246.     165, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
  247.      93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
  248.      93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
  249.      93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
  250.      93,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,
  251.     221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,
  252.     221, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
  253.      29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
  254.      29,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,
  255.     157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,
  256.     157,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,
  257.     125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,
  258.     125,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,
  259.     253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,
  260.     253, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
  261.      61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
  262.      61,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,
  263.     189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,
  264.     189, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
  265.      77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
  266.      77,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,
  267.     205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,
  268.     205, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
  269.      13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
  270.      13,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,
  271.     141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,
  272.     141,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
  273.     109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
  274.     109,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,
  275.     237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,
  276.     237, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
  277.      45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
  278.      45,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,
  279.     173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,
  280.     173, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
  281.      81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
  282.      81,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,
  283.     209, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
  284.      17,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,
  285.     145,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
  286.     113,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,
  287.     241, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  288.      49,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,
  289.     177, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
  290.      65,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,
  291.     193,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
  292.       1,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,
  293.     129, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
  294.      97,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,
  295.     225, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
  296.      33,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,
  297.     161, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
  298.      89,217,217,217,217,217,217,217,217, 25, 25, 25, 25, 25, 25, 25,
  299.      25,153,153,153,153,153,153,153,153,121,121,121,121,121,121,121,
  300.     121,249,249,249,249,249,249,249,249, 57, 57, 57, 57, 57, 57, 57,
  301.      57,185,185,185,185,185,185,185,185, 73, 73, 73, 73, 73, 73, 73,
  302.      73,201,201,201,201,201,201,201,201,  9,  9,  9,  9,  9,  9,  9,
  303.       9,137,137,137,137,137,137,137,137,105,105,105,105,105,105,105,
  304.     105,233,233,233,233,233,233,233,233, 41, 41, 41, 41, 41, 41, 41,
  305.      41,169,169,169,169,169,169,169,169, 87, 87, 87, 87, 87, 87, 87,
  306.      87,215,215,215,215, 23, 23, 23, 23,151,151,151,151,119,119,119,
  307.     119,247,247,247,247, 55, 55, 55, 55,183,183,183,183, 71, 71, 71,
  308.      71,199,199,199,199,  7,  7,  7,  7,135,135,135,135,103,103,103,
  309.     103,231,231,231,231, 39, 39, 39, 39,167,167,167,167, 95, 95, 95,
  310.      95,223,223, 31, 31,159,159,127,127,255,255, 63, 63,191,191, 79,
  311.      79,207,207, 15, 15,143,143,111,111,239,239, 47, 47,175,175, 83,
  312.      83,211, 19,147,115,243, 51,179, 67,195,  3,131, 99,227, 35,163,
  313.      91,219, 27,155,123,251, 59,187, 75,203, 11,139,107,235, 43,171
  314. };
  315.  
  316. int alaw_input P1((buf), gsm_signal * buf) 
  317. {
  318.     int  i, c;
  319.  
  320.     for (i = 0; i < 160 && (c = fgetc(in)) != EOF; i++) buf[i] = A2S( c );
  321.     if (c == EOF && ferror(in)) return -1;
  322.     return i;
  323. }
  324.  
  325. int alaw_output P1((buf), gsm_signal * buf) 
  326. {
  327.     int  i;
  328.  
  329.     for (i = 0; i < 160; i++, buf++)
  330.         if (fputc( S2A( *buf ), out) == EOF) return -1;
  331.     return 0;
  332. }
  333.  
  334.